package com.CmJava.crowd.config;


import com.CmJava.crowd.entity.CrowdException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

/*
    增强的 Controller。
    使用这个 Controller ，可以实现三个方面的功能：
        全局异常处理
        全局数据绑定
        全局数据预处理
*/
@ControllerAdvice
public class CrowdExceptionHandler extends CrowdException {

    //只有捕获到对应exception才会执行下面方法
    @ExceptionHandler(value = CrowdException.class)

    public ModelAndView caughtCrowdException(CrowdException exception, HttpServletRequest request){
//        System.out.println("erroooooo");
//        String message = exception.getMessage();
//        boolean judgeHttp = JudgeHttpUtil.judgeHttp(request);
//        // 如果是json请求，不返回视图，因为json请求是异步请求，不刷新页面
//        if (!judgeHttp){
//            ResultEntity<Object> failResultEntity = ResultEntity.failWithMessage(message);
//            ModelAndView modelAndView = new ModelAndView();
//            modelAndView.addObject("failResultEntity",failResultEntity);
//            // ModelAndView默认转发，所以这里用重定向，为了html里面的相对路径能够正确
//            modelAndView.setViewName("redirect:/erro.html");
//            return modelAndView;
//        }else {
//
//        }
        for (int i = 0; i <10 ; i++) {
            System.out.println("erro");
        }
        return null;
    }
}
